home *** CD-ROM | disk | FTP | other *** search
- #include "Independents.h"
-
-
- StringPtr GetPtrIndHString(Handle resH, unsigned short index)
- {
- unsigned short *compPtr = (unsigned short *)*resH;
- unsigned char *spanPtr;
- unsigned short i = index;
-
- if (*compPtr++ <= i)
- spanPtr = nil;
- else {
- spanPtr = (unsigned char *)compPtr;
- while (i) {
- spanPtr += *spanPtr++;
- i--;
- }
- }
-
- return (StringPtr)spanPtr;
- }
-
- void GetIndHString(Str255 *dest, Handle resH, unsigned short index)
- {
- unsigned short *compPtr = (unsigned short *)*resH;
- unsigned char *spanPtr;
- unsigned short i = index;
-
- if (*compPtr++ <= i)
- Length(dest) = 0;
- else {
- spanPtr = (unsigned char *)compPtr;
- while (i) {
- spanPtr += *spanPtr++;
- i--;
- }
- BlockMoveData(spanPtr, dest, *spanPtr + 1L);
- }
-
- return;
- }
-
- short KeyState(unsigned short k )
- // k = any keyboard scan code, 0-127
- {
- KeyMap km;
-
- GetKeys(km);
- return ( ( *((unsigned char *)km + (k>>3)) >> (k & 7) ) & 1);
- }
-
- OSType Str2OSType(StringPtr theStr)
- {
- OSType result;
- Ptr source, dest;
- unsigned char i = Length(theStr);
-
- source = (Ptr)theStr + 1;
- dest = (Ptr)&result;
- *dest++ = *source++;
- *dest++ = *source++;
- *dest++ = *source++;
- *dest++ = *source++;
-
- if (i < 4)
- while (i < 4) {
- *--dest = 0x20;
- i++;
- }
-
- return result;
- }
-
- void OSType2Str(OSType typ, StringPtr theStr)
- {
- register StringPtr tempPtr = theStr;
- register StringPtr sourcePtr = (StringPtr)&typ;
-
- *tempPtr++ = 4;
- *tempPtr++ = *sourcePtr++;
- *tempPtr++ = *sourcePtr++;
- *tempPtr++ = *sourcePtr++;
- *tempPtr = *sourcePtr;
- }
-
-